Method for performing soft decision decoding of euclidean space reed-muller codes

ABSTRACT

Soft decision decoding of a codeword of a Reed-Muller (RM) code by 
     selecting an optimal decomposition variable i using a likelihood calculation. A code RM(r, m) is expressed as {(u, uv)|uεRM(r, m−1) and vεRM(r−1, m−1)) where uv denotes a component-wise multiplication of u and v, and (u, uv)=(r 1 , r 2 ). A receive codeword is separated into r 1 =u and r 2 =uv based on the optimal decomposition variable, and r 2  is decoded according to the optimal decomposition variable, using a RM(r−1, m−1) decoder to obtain a decoded v and a first set of decoded bits. The decoded v is combined with r 1  using (r 1 +r 2 v)/2, and 
     (r 1 +r 2 V)/2 is decoded using a RM(r, m−1) decoder to obtain a decoded u and a second set of decoded bits.

FIELD OF THE INVENTION

This invention relates generally to error correction coding, and moreparticularly to decoding soft information from receive signals

BACKGROUND OF THE INVENTION

Optical Communication Network

Latency is a major issue in high speed communication networks, such asoptical networks. This makes the trade-off between latency, complexityof implementation and coding gain important in the selection of channelcodes. In many cases, the use of any coding technique can only providegain at the expense of additional decoding and encoding complexity andincreased latency. It is important to find coding techniques thatprovide sufficient gains, while keeping the encoding and decodingcomplexity low.

Reed-Muller (RM) Codes

Polar codes, see U.S. Pat. No. 7,756,424, “Optical CDMA communicationssystem using OTDL device, have been used optical in fiber opticcommunications systems, to make more efficient use of the availablebandwidth. Reed Muller codes, a subset of polar codes, can be used toachieve performance close to capacity limit predicted by the Shannonlimit. Reed Muller decoders use linear error-correcting codes.Reed-Muller (RM) codes belong to the classes of locally testable codes,and locally decodable codes. RM codes are useful in the design ofprobabilistically checkable proofs in communication applications.Special cases of Reed-Muller codes include Hadamard codes, andWalsh-Hadamard codes.

It is known that RM codes have an elegant construction based onpolynomials with specific structure. Higher order RM codes can beconstructed recursively from lower order RM codes. This enables adecoding process that has complexity that is thousands of times smallerthan other error correcting codes with similar performance, such as ReedSolomon codes.

Soft Decision Decoding

As known in the art, a hard-decision decoder decodes data that have afixed set of discrete possible values, typically 0 or 1.

A soft-decision decoder decodes data that have been encoded with anerror correcting code, and the data take on a range of continuous valuesfrom 0 to 1. The extra information indicates reliability (probability)of each input data point, and is used to form better estimates of theoriginal data. Therefore, a soft-decision decoder typically performsbetter in the presence of corrupted data than hard-decisioncounterparts.

There are two types of soft decision decoders. First, a maximumlikelihood (ML) decoder determines the probability that a specificcodeword has been sent over a channel. Second, a maximum a posteriori(MAP) decoder determines the probability that information bit has beenused to generate a codeword to be sent over a channel.

SUMMARY OF THE INVENTION

Embodiments of the invention provide a method for decoding softinformation of Reed Muller that show superior performance over existingschemes.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a schematic of a method for finding the optimal decompositionvariable according to one embodiment of the invention;

FIG. 2 is a schematic of a decoding method for Reed Muller codesaccording to one embodiment of the invention;

FIG. 3 is another schematic of a decoding method for Reed Muller codesaccording to one embodiment of the invention;

FIG. 4 is a schematic of a decoding method for Reed Muller codesaccording to another embodiments of the invention;

FIG. 5 is another schematic of a decoding method for Reed Muller codesaccording to another embodiments of the invention; and

FIG. 6 is a schematic of a MAP decoding method for Reed Muller codesaccording to another embodiment of the invention

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

The embodiments of the invention provide a method for performing softdecision decoding of Euclidean space Reed-Muller (RM) codes. The stepsof the methods and procedures shown in FIGS. 1-6 can be performed in aprocessor connected to a memory and input/output interfaces as known inthe art.

A code RM(r, m) of order r and codewode of length 2^(m) is a set of allbinary vectors associated with coefficients of a Boolean polynomial withm variables, and whose terms are composed of monomials of degree r. Amonomial is a product of powers of variables, or formally any valueobtained by finitely many multiplications of a variable.

Such a code has

$1 + \begin{pmatrix}m \\1\end{pmatrix} + \ldots + \begin{pmatrix}m \\r\end{pmatrix}$

valid codewords, and a minimum Hamming distance of 2^(m-r). Themappings, 0

1 and 1

−1 are used to transmit the RM(r, m) codewords using, e.g., binaryphase-shift keying (BPSK) symbols. The function

$\quad\begin{pmatrix}n \\k\end{pmatrix}$

is the binomial coefficient, or the number of ways to construct a set ofk elements from a larger set of n elements.

Maximum Likelihood Decoding

Maximum Likelihood Decoding of First Order Reed-Muller Codes andHadamard Transform

The polynomial of a RM(1, m) code is 1+X₁+ . . . +X_(m). The RM(1, m)code has the property that each of the code words, after BPSK mapping,is a row in the Hadamard matrix H₂ ^(m) , or −H₂ ^(m) . Thus, theencoder maps the input bit sequence, b₁, b₂, . . . , b_(m+1), asfollows. The encoder first examines the m least significant bits b₂, . .. , b_(m+1) and computes the decimal representation of this binarynumber. This produces the index i=b₂2⁰+b₃2¹+ . . . +b_(m+1)2^(m−1).Then, the encoder transmits the i^(th) row of H₂ ^(m) if b₀=0, or thei^(th) row of −H₂ ^(m) if b₀=1.

The decoder examines the received vector with 2^(m) coordinates. The mvariables form an orthogonal subspace, and can be detected by theHadamard transform, and the presence of a constant one negates theresult of the Hadamard transform.

Let Y be the received vector, and H₂ ^(m) be the Hadamard matrix of size2^(m)×2^(m), the decoder determines the likelihood L=H₂ ^(m) Y. It isassumed that the received vector Y is the transmitted codeword, whichhas been corrupted by additive white Gaussian noise with zero mean andnoise variance σ².

Let L_(i) be the value of the i^(th) element in the likelihood L. Then,the decoder determines î=arg max_(i)L_(i), where the function arg maxreturns the index that obtains the maximum value. The sign of L_(i)gives {circumflex over (b)}₁ The binary expansion of the index îindicates which variable is present, and thus gives estimates of thevalues of {circumflex over (b)}₂ to {circumflex over (b)}_(m+1).

Maximum Likelihood Decoding of Decoding RM(m, m)

A generator matrix G of a code RM(m, m) is full rank and invertible in aGalois field of two elements (GF(2)). Hence, the decoder performs matrixinversion of G to obtain G⁻¹, and multiplies the received vector afterthreshold operation by G⁻¹ in modulo 2 arithmetic.

Maximum Likelihood Decoding of Higher Order Reed-Muller Codes andRecursive Decomposition

Given the two procedures above for decoding RM(1, m) and RM(m, m) codes,we can now recursively decode of general RM(r, m) codes. We note thatthe RM(r, m) code can be decomposed into RM(r−1, m−1) and RM(r, m−1)codes, via the well known Plotkin decomposition.

Thus, after BPSK mapping, we can express RM(r, m) as RM(r, m)={(u,uv)|uεRM(r, m−1) and vεRM(r−1, m−1)}, where uv denotes a component-wisemultiplication of u and v. Hence, depending on the choice ofdecomposition variable x_(j), j=1, 2, . . . , m, the codewords of RM(r,m) can be written after applying the appropriate permutation as

(u ^(j) , u ^(j) v ^(j))=(r ¹ , r ²),

where the superscript j is used to denote that the variable x_(i) wasused in the Plotkin decomposition. We use u^(j) _(i) and u^(j) _(i)v^(j)_(i) to denote the i^(th) coordinates of r¹ and r². The log-likelihoodratio (LLR) of u^(j) _(i), LLR(u^(j) _(i)) can be determined from r¹_(i−). Similarly, the log-likelihood ratio of u^(j) _(i)v^(j) _(i),LLR(u^(j) _(i)v^(j) _(i)), can be determined from r² _(i). Because v^(j)_(i)=u^(j) _(i)(u^(j) _(i)v^(j) _(i)), the log-likelihood of v^(j) _(i),LLR(v^(j) _(i)) can be expressed in terms of LLR(u^(j) _(i)) andLLR(u^(j) _(i)v^(j) _(i)) as LLR(v^(j) _(i))=log((exp(LLR(u^(j)_(i))+LLR(u^(j) _(i)v^(j) _(i)))+1)/exp(LLR(u^(j) _(i)))+exp(LLR(u^(j)_(i)v^(j) _(i))))).

Because we have a procedure to compute the LLR(v^(j) _(i)), we canperform decoding of v^(j). This is accomplished by generating a receivedvector r*, which has the same LLR values as v^(j). Thus, r* correspondsto the received codeword, assuming that v^(j) was transmitted. This isdone by setting r*_(i)=LLR(v^(j) _(i))σ²/2 for i=1, 2, . . . , 2^(m−1).We assume that we have a RM(r−1,m−1) decoder, and we pass r* throughthis decoder to obtain v^(j).

While there are m variables that can be used to perform the Plotkindecomposition, there is an optimal decomposition variable then is ^(x)ĵsuch that

${\hat{j} = {\arg \; {\max\limits_{j}{\sum\limits_{i}{{{LLR}\left( v_{i}^{j} \right)}}}}}},$

where the function arg max returns a maximum absolute value. The abovechoice of ĵ maximizes the probability of correct detection of v^(j).

As a variation that results in a lower performance for the ML decoder,it is possible to use

${\hat{j} = {\arg \; {\max\limits_{j}{\min\limits_{i}{{{LLR}\left( v_{i}^{j} \right)}}}}}},$

where the function arg max min returns the maximum index j, and theminimum index i for the absolute value, (|.|), of v^(j) _(i).

The prior art does not determine the LLR for the decomposition variable,and does not use the absolute value (abs) function, and finding amaximum. There are two variations that can be used depending on whetherwe use a maximum likelihood (ML), or maximum a posteriori (MAP)decoder.We can insert a ‘sum’ function between the max and abs function, orinsert a ‘min” function between the max and abs function.

FIG. 1 is a schematic of the procedure 100 to determine the optimaldecomposition variable 101. For example, for the code RM(2, 3) 102,three variables are used in the polynomial construction of the code.That means there are three possible decomposition variables, x_(1,) x₂,x₃.

The procedure rearranges 110 bits y₁y₈ corresponding to eachdecomposition variable to obtain u^(j) and u^(j)v^(j) for j=1, 2 and 3.

For each of the decomposition variable, the procedure determines the LLRV. The abs function 131 is applied to all computed v^(i) _(i), and a sumor min function 141 is then applied to the index i. The decompositionvariable index j that corresponds to the largest value, as determined bythe arg max function 141, is then the optimal decomposition variable101.

Because we now have v^(j), we can compensate for it in r² by computingr²v^(j). We can form the input to the RM(r, m−1) decoder as(r¹+r²v^(j))/2.

Now, v can be decoded using the RM(r−1, m−1) decoder. After v isdecoded, two observations exist for u, one for r¹ and one with r²v. Fora Gaussian distributed channel, the two observations can be averaged,and the RM(r, m−1) decoder can be used to decode u. The process can berecursively applied.

FIG. 2 shows this process schematically. After the optimal decompositionvariable is determined 100 for the code RM(r, m) according to theprocedure shown in FIG. 1, half of the bits corresponding to r² 202 aredecoded using a RM(r−1, m−1) decoder 203. Depending on the code order r,RM(r−1, m−1) 203 can require further recursion for decoding the subcoder², or if r−1=1 (equivalently, r=2). A Hadamard transform can be used todecode the subcode r².

The RM(r−1, m−1) decoder returns both a decoded v 204 and a first set ofcorresponding undecoded bits. The decoded v are used to estimate u bydetermining (r¹+r²v^(j))/2 205. The compute vector is decoded using anRM(r, m−1) decoder 206. If r=m−1, subcode (r¹+r² v^(j))/2 can be decodedusing matrix inversion. Otherwise, further recursion is used to decodethe subcode. The RM(r, m−1) decoder returns decoded bits u 207, and asecond set of corresponding undecoded bits.

FIG. 3 shows a more detailed schematic of the procedure. First, theprocedure determines the optimal decomposition variable x_(ĵ) 101 bydecomposing RM(r, m) can be into RM(r−1, m−1) and RM(r, m−1) using a thePlotkin decomposition and the choice of decomposition variable ^(x)ĵdescribed above.

Then, the procedure determines 310, if r² is currently decodable. Theinput r²from the Plotkin decomposition, corresponding to RM(r−1,m−1), iscurrently decodable if (r−1=1).

If true, then the maximum likelihood decoder for the RM(1,m−1) decoderbased the Hadamard transform 311 is used to decode v^(j) using input r2.

If r−1>1, then the Plotkin decomposition 312 is recursed, this time onthe RM(r−1, m−1), and the input r².

After v^(j) is obtained we can proceed to generating the input for theRM(r, m−1 decoder. This is generated as (r¹+r²v^(j))/2 320.

If the RM(r,m−1) code satisfies the condition that r=m−1 then the input,(r¹+r²v^(j))/2, can be decoded to generate u^(j) using the generatormatrix of the RM(m−1,m−1) code described above.

Check 330 if r<m−1. If true, then the Plotkin decomposition is carriedout again this time on the RM(r, m−1) code 331 and input (r¹+r²v^(j))/2.Otherwise, decode using a matrix inversion 332.

Maximum Likelihood List Decoding with Optimal Decomposition

Maximum likelihood decoding usually finds the codeword and thecorresponding undecoded bit pattern that is most similar to the receivedsignal. In some applications, it can be useful to find not only thesingle similar codeword, but also multiple code words.

To do so, as shown in FIG. 4, the decoder for RM(r−1, m−1) 403determines a small set of the number of closest code words. For example,in the RM(1, m) case, this can be done by the following.

After the optimal decomposition variable is determine 101 according toFIG. 1, half of the bits corresponding to r² 402 are decoded using anRM(r−1,m−1) decoder 403. Depending on value of r, RM(r−1, m−1) canrequire further recursion for decoding the subcode r², or if r−1=1(equivalently, r=2). A list Hadamard transform can be used to decode thesubcode r². The RM(r−1, m−1) decoder returns multiple decoded v_(i) 404,and the corresponding undecoded bits.

The decoded v_(i) are used to estimate u_(i) by computing (r¹+r²v_(i))/2405. For each of the estimate (iterate over all i), the compute vectoris decoded using the RM(r, m−1) decoder 406. If r=m−1, subcode(r¹+r²v_(i))/2 can be decoded using matrix inversion. Otherwise, furtherrecursion is used to decode the subcode. The RM(r, m−1) decoder returnsdecoded u 407, and the corresponding undecoded bits.

List Hadamard Transform

Let Y be the received vector, and H₂ ^(m) be the Hadamard matrix. Thedecoder determines the likelihood L=H₂ ^(m) Y. Let L_(i) be the value ofthe i^(th) element in L, then the decoder finds multiple î's whichcorresponds to a set of the values in L. For each î, the sign of ^(L)_(î) gives {circumflex over (b)}₁. The index î indicates which variableis presence, and thus value of to {circumflex over (b)}₂ to {circumflexover (b)}_(m+1). All bit patterns for each î correspond to a codeword.These can then be used to find v₁, v₂, and so on.

With each v_(i), (r¹+r²v_(i))/2 are determined, and passed to the RM(r,m−1) decoder. Each of these vectors can be used to decode thecorresponding bits, u_(i) vector.

FIG. 5 shows a more detailed schematic of the procedure. The procedureis very similar to FIG. 3. The exception is that a list Hadamard decoderis used to find the few closest v_(i)'s when r=2. Because multiple v_(i)are returned, the procedure determine multiple (r¹+r²v_(i))/2 520, andthe procedure loops 530 over all i using these vectors to decodemultiple u_(i).

Maximum A Posteriori (MAP) Decoding

In the prior art, a MAP only operates on for codewords, and notindividual bits. The embodiments of the invention provide a method forbit-level MAP decoding. An exact MAP decoder is provide for RM(1, m) andRM(m, m), and an approximated MAP decoder is provide for higher order RMcodes. In addition, we also provide a fast MAP decoder based on a listmaximum likelihood (ML) decoder.

MAP Decoder for RM(1, m)

Let r be the received bit, σ² be the noise variance and H₂ ^(m) be theHadamard matrix. Then, the log likelihood of the bits LLRbit can bedetermined using the following pseudocode:

LLRrow=H ₂ ^(m) r/σ ²

expLL=exp(LLRrow)+exp(−LLRrow)

LLRbit(1)=log(sum(LLRrow)/sum(−LLRrow))

LLRbit(2:end)=log((1−A)exp LL/(A.expLL))

where A is a matrix of all binary vectors.

MAP Decoder for RM(m, m)

Let r be the received bit, σ² be the noise variance and c_(i) for i=1,2, . . . , 2^(m), be all binary vectors. We first determine thelikelihood of every c_(i) given r and σ², which is well known based onprobability theory. After that, we note that c=Gb in modulo 2, where Gis the generator polynomial, and b is the undecoded bits. It is easy todeterminer inverse of G in modulo-2 arithmetic. Using the likelihood ofc_(i) and inverse of G, one can then determine the MAP of each bit.

MAP Decoder for Higher Order Reed Muller Code

FIG. 6 shows the decoding method for higher order RM code. The method issimilar to a ML decoder. We highlight the difference in the following:

To determine 101 the optimal for optimal decomposition variable, we use

$\hat{j} = {\arg \; {\max\limits_{j}{\min\limits_{i}{{{{LLR}\left( v_{i}^{j} \right)}}.}}}}$

The RM(r−1, m−1) 603 decoder only returns the LLR of the undecoded bits604 corresponding to r².

Using the LLR of the bits, the method determines the likelihood of codewords that result in r². We consider all code words that havesubstantial probability, for example, a probability higher than 0.01.These code word, which are bit-wise multiplied by r², gives acompensated received codeword that can be used to decode the remainingbits.

Additionally r¹ 605 can be used to decode the remaining bits. Thedecoder for RM(r, m−1) 606 is called for each possibility. To clarify,RM(r, m−1) is called at least two times, and can be called many moretimes if many code words have the substantial probability.

The LLR of each recursive call determines the LLR of bits correspondingto the specific compensated codeword or r¹.

All LLR of bits are combined 607. First, using the probability of eachcompensated code word with the substantial probability, The LLR of bitscan be determined using a weighted sum. Finally, the LLR of bits from r¹is added to the LLR from the compensated code words.

MAP Decoder Using ML List Decoder

For a faster MAP decoder, it is possible to use the ML list decoderdescribed above for FIG. 4. The list decoder returns the small number ofcode words that are most likely given the observed signal. Now, eachcodeword corresponds to an input bit pattern. With a small number oflikely code words, a small number of likely input bit pattern areidentified. An approximated MAP can then be calculated by considering aweighted sum of these likely bit patterns.

This code can be used in optical fiber, wireless, and wiredcommunication networks.

Although the invention has been described by way of examples ofpreferred embodiments, it is to be understood that various otheradaptations and modifications can be made within the spirit and scope ofthe invention. Therefore, it is the object of the appended claims tocover all such variations and modifications as come within the truespirit and scope of the invention.

1. A method for performing soft decision decoding of a codeword of aEuclidean a space Reed-Muller (RM) code, wherein a code RM(r, m) oforder r and a codeword of length 2^(m) is a set of all binary vectorsassociated with coefficients of a Boolean polynomial with in variables,and whose terms are composed of monomials of degree r, comprising thesteps of selecting an optimal decomposition variable i using alikelihood calculation; expressing the code RM(r, m) as {(u, uv)|uεRM(r,m−1) and vεRM(r−1, m−1)), where uv denotes a component-wisemultiplication of u and v, and (u, uv)=(r¹, r²); separating receivecodeword into r¹=u and r²=uv based on the optimal decompositionvariable; decoding r², according to the optimal decomposition variable,using a RM(r−1, m−1) decoder to obtain a decoded v and a first set ofdecoded bits; combining the decoded v with r¹ using (r¹+r²v)/2; anddecoding (r¹+r²v)/₂ using a RM(r, m−1) decoder to obtain a decoded u anda second set of decoded bits, wherein the steps are performed in aprocessor.
 2. The method of claim 1, wherein the selecting determines alog likelihood ratio of v, and uses absolute and maximum operations. 3.The method of claim 1, wherein the selecting uses a sum operation. 4.The method of claim 1, wherein the selecting uses a minimum operation.5. The method of claim 1, wherein the decoding of the RM(1, m) code usesa Hadamard transform to obtain a maximum likelihood (ML) estimate of atransmitted codeword.
 6. The method of claim 6, wherein the decoding ofthe RM(1, m) code uses a list Hadamard transform for a plurality of mostlikely decoded v.
 7. The method of claim 1, wherein a RM(m, m) code isdecoded by a matrix inversion.
 8. The method of claim 5, wherein a RM(1,m) code is decoded using the Hadamard transform to obtain a Maximum APosteriori (MAP) estimate of the transmitted information bit in thecodeword.
 9. The method of claim 7, further comprising: determining thelikelihood of each codeword based on received vector, decoding the RM(m,m) code using the matrix inversion to obtain a Maximum A Posteriori(MAP) estimate of a transmitted information bit in the codeword.
 10. Themethod of claim 9, further comprising: determining a probability ofvalid codewords based on the MAP estimate of the transmitted informationbit at an output of the RM(r−1, m−1) decoder; and selecting a mostlikely codeword from the output of the RM(r−1, m−1) to combine with r¹.11. The method of claim 10, further comprising: determining the MAPestimate of the information bit using a weight sum operation.